package com.henu.rescue.utils;


import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/*自定义拦截器 实现HandlerInterceptor接口 */
@Component
public class LoginInterceptor implements HandlerInterceptor {

    // 调用目标方法之前执行的方法
    // 此方法返回 boolean 类型的值，
    //          如果返回的是true 表示（拦截器）验证成功，继续走后续的流程，执行目标方法
    //          如果返回的是 false 表示拦截器验证失败，后续的流程和目标方法就不执行。
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //用户登录判断业务
        HttpSession session = request.getSession(false);
        if(session != null && session.getAttribute("admin")!=null){
            // 用户已登录了
            System.out.println(session.getAttribute("admin"));
            return true;
        }
        System.out.println("没有");
        //用户没有登录
        response.sendRedirect("/admin/login");//可以重定向到系统的登录路由
        //response.setStatus(401);//向前端返回相应的状态码  401：没有权限
        return false;
    }
}
